# -*- coding: utf-8 -*-

#汉诺塔的移动可以用递归函数非常简单地实现。
#请编写move(n, a, b, c)函数，它接收参数n，表示3个柱子A、B、C中第1个柱子A的盘
#子数量，然后打印出把所有盘子从A借助B移动到C的方法

#http://t.cn/R9Rbmz8知乎设计思路
#现在有个n个盘子，a,b,c三个塔。
#把n个盘子抽象成两个盘子，n-1 和 底下最大的1
#| n = (n-1) + 1
#  首先：把n-1 移到 缓冲区             -------过程1
#  然后：把1 移到 终点                 -------过程2
#  最后：把缓冲区的n-1 移到 终点       -------过程3
#当n为1时，直接从a到c

# 期待输出:
# A --> C
# A --> B
# C --> B
# A --> C
# B --> A
# B --> C
# A --> C

#move(3, 'A', 'B', 'C')

def move(n, a, b, c):
    if n == 1:
        print(a,'-->',c)
    else:
        move(n-1, a, c, b)
        move(1, a, b, c)
        move(n-1, b, a, c)